// 异常处理
// then的第二个func或者catch都可以注册失败的回调
// catch方法就是then方法的第一个参数传递了一个undefined
ajax('/api/users.json').then(function onFulfilled (res){
  console.log(res);
  return ajax('/api/urls.json')
},function onRejected (error){
  console.log(error);
  return ajax('/api/urls.json')
})
// ).catch(
ajax('/api/users.json').then(function onFulfilled (res){
  console.log(res);
  return ajax('/api/urls.json')
}).catch(function onRejected (error){
  console.log(error);
  return ajax('/api/urls.json')
})
// 第一种方式不能链式的捕捉错误的回调 也不能捕捉自己的错误! 
// catch放在最后可以监听之前链式调用的错误 自己是undefined没有错的
// 全局对象 unhandledRejection 处理代码中没有被手动补货的promise异常
process.on('unhandledRejection',(reason,promise)=> {
  console.log(reason,promise);
})
// 不推荐